Aujourd’hui c’est une astuce très courte mais qui montre bien tout le soin apporté aux outils de développement.
Le contexte
Vous devez réaliser un package de déploiement (WSP pour ceux qui n’auraient pas suivi ;)) composé uniquement d’éléments descriptifs tels que :
- fichiers XML de fonctionnalités,
- des ressources “Web” tels que des images, fichiers javascript, feuilles de style etc… à mettre dans le “14” (répertoires LAYOUTS, IMAGES, dans un module, …)
- des ressources de traductions (resx)
- ….
Bref, beaucoup de choses mais sans une seule ligne de code et sans assembly.
Avant
Auparavant, i.e. avec la version 2007, en tant qu’utilisateur de WSPBuilder, je faisais un projet de type bibliothèque de classes dans lequel je créais la hiérarchie du “12” et je changeais le répertoire de sortie pour générer ma DLL quelque part où elle ne m’ennuierait pas pour le packaging, ou bien j’excluais le fichier dans la configuration de WSPBuilder.
Bref, forcément, il y avait des fois où je zappais cette étape et je nettoyais après-coup lorsque je pensais à jeter un oeil sur le manifeste de ma solution (une bonne pratique à garder lorsqu’on automatise la génération du package).
Maintenant (version 2010)
Avec les outils de développements fournis dans Visual Studio 2010, on peut tranquillement créer son projet vide SharePoint et y ajouter les éléments à déployer comme par exemple dans ce projet où j’ai simplement mis quelques images :
Je génère le package via le menu contextuel :
Et je me rends dans le répertoire de sortie (“bin\debug” ici) où se retrouve mon fichier WSP. En le renommant avec l’extension CAB je peux de suite l’ouvrir et consulter son contenu :
On y voit l’assembly qui a été automatiquement générée mais qui est vide et ne me sert à rien, sauf à m’encombrer d’une dll à placer quelque part…
La solution est très simple : cliquez sur le projet et affichez les propriétés :
Vous pouvez y voir l’option “Include Assembly In Package”, actuellement à “True” (vous pouvez en profiter pour remarquer juste au dessus la cible de l’assembly,au choix le GAC ou le répertoire Bin de l’application web).
Reste à changer la valeur à “False”, relancer le package et vérifier le résultat attendu :
L’assembly n’y est plus !
Simple n’est-il pas ? Ca résume la philosophie de ces nouveaux outils : simplicité, efficacité, mais sans brider la puissance de la bête !
Gat, packageur fou